Hành trình từ một struct đến một Kiểu Dữ liệu Trừu tượng (ADT) là một bước chuyển đổi cơ bản trong triết lý thiết kế. Trong khi một struct thường là một tập hợp các biến thụ động, thì ADT là một thực thể chủ động quản lý trạng thái riêng của nó thông qua Tính Bao đóng.
1. Mục đích Thiết kế
Trong C++, từ khóa class thể hiện cam kết với Trừu tượng Hóa Dữ liệu. Chiến lược này tách biệt giao diện (những gì người dùng có thể làm) khỏi thực thi (cách dữ liệu được lưu trữ). Nhờ che giấu các biến nội bộ, nhà phát triển đảm bảo đối tượng duy trì tính nhất quán nội bộ của chính nó.
2. Chi tiết Kỹ thuật
Về mặt kỹ thuật, điểm khác biệt duy nhất giữa một struct và một class trong C++ là mức truy cập mặc định. Các thành viên của một struct là public theo mặc định, phản ánh vai trò của chúng như những nơi lưu trữ dữ liệu mở. Các thành viên của một class là private theo mặc định, phản ánh vai trò của chúng như các thực thể được quản lý.
$$\text{ADT} = \text{Dữ liệu} + \text{Thao tác}$$